Gradle build speed improvements#2701
Conversation
There was a problem hiding this comment.
Code Review
This pull request upgrades the project to Gradle 9.4.1 and introduces significant build performance optimizations, including enabling the configuration cache, parallel execution, and build caching. The build logic has been refactored to utilize lazy task registration and configuration, and the external 'grgit' dependency was replaced with direct Git command execution to streamline the build process. Additionally, JavaDoc and source JAR generation are now disabled by default for local builds. Feedback focuses on addressing brittle logic in conditional plugin application, ensuring lazy dependency resolution to maintain configuration speed, and fixing type inconsistencies in versioning properties.
|
🖼️ Screenshot tests have failed. The purpose of these tests is to ensure that changes introduced in this PR don't break visual features. They are visual unit tests. 📄 Where to find the report:
✅ If you did mean to change things: ✨ If you are creating entirely new tests: Note; it is very important that the committed reference images are created on the build pipeline, locally created images are not reliable. Similarly tests will fail locally but you can look at the report to check they are "visually similar". See https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-screenshot-tests/README.md for more information Contact @richardTingle (aka richtea) for guidance if required |
dfab9a7 to
b86a577
Compare
b86a577 to
44390a2
Compare
512d5e6 to
13b5bec
Compare
13b5bec to
486be3f
Compare
Enable Gradle performance defaults:
org.gradle.parallel=trueorg.gradle.caching=trueorg.gradle.configuration-cache=trueMake normal local builds faster by default:
buildJavaDoc=falseassemble/buildlifecycleKeep release and publishing workflows complete:
-PbuildJavaDoc=trueto GitHub Actions release, distribution, snapshot, and Central publishing commandsReduce eager project work and make configuration cache work for more build paths:
configureEachand lazy task registrationmergedJavadoccompatible with configuration cachecreateZipDistributioncompatible with configuration cachelibDistto avoid execution-time Gradle model accessjme3-examples:distto avoid execution-timeProject/ConfigurationaccessImprove related task behavior:
jme3-examples:rundepend on the runtime classpath instead of the fullbuildlifecycle.partfile before replacing the final zip:jme3-android:compileJavaxcodebuildtasks isolated derived-data directoriesBuild speed measurement: